home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / SYS / s / example.evt < prev    next >
Text File  |  1996-09-26  |  4KB  |  147 lines

  1. /* Event!-Example-Script */
  2. /* (c) 1992-4 by Stefan Hochmuth */
  3.  
  4. /* ARexx-Initialisations */
  5.     address "EVENT!"
  6.     options results
  7.  
  8. /* Display Header */
  9.     say "===== EVENT! Status ====="
  10.     say ""
  11.  
  12. /* Ask for current config name */
  13.     'STATUS 0'
  14.     filename=result
  15.  
  16. /* Get number of events */
  17.     'STATUS 1'
  18.     eventcount=result
  19.  
  20. /* Display them */
  21.     say "Config : "||filename
  22.     say "Entries: "||eventcount
  23.  
  24. /* Display Status message in the clock's window */ 
  25. /*    'DISPLAY "2,0,Searching next event occurrence"' */
  26.  
  27.  
  28. /* Get next occuring event without the ones containing the string 'clock'
  29. 'cause I've got an event called "ClockWindow to Front" which
  30. occurs every minute */
  31.     'WHENWILL "~(**clock**)"'
  32.     OCString=result
  33.  
  34. /* Parse result from Event! */
  35.     CALL ExtractFromOccurString    
  36.  
  37.     say ""
  38. /* If an event occurs within 366 days then display it */
  39.     If OccurMins~==0 then do
  40.         say "The next event occuring within 366 days is: "||eventname
  41.         say "It occurs in approx. "||days||" days and "||hours||":"||mins||" h"
  42.     end
  43. /* Otherwise inform the user */
  44.     else say "No event occuring within the next 366 days"
  45.     say    ""
  46.  
  47.     say "Time Based events in the near future:"
  48.     say ""
  49.  
  50. /* Another message in the clock's window */
  51. /*    'DISPLAY "Showing future occurrences"' */
  52.  
  53.  
  54. /* Display Header */
  55.     say "Event Name                            Days to go   Hours To go"
  56.     say "--------------------------------------------------------------"
  57.  
  58. /* Get Occurance Time for all events */
  59.     do i=1 to eventcount
  60.         WHENWILLNR i
  61.         OCString=result
  62. /* Convert the result */
  63.         CALL ExtractFromOccurString    
  64. /* If the result is -1 then the event will occur in more than 366 days
  65. if ever */
  66.         If OccurMins==-1 then do
  67.         say Substr(EventName,1,44)  "*** > 366 days ***"
  68.         end
  69.         else do
  70. /* Otherwise, if not zero (the event exists and is timebased) */
  71.             If OccurMins~==0 then do
  72.                 say Substr(EventName,1,44)  days "   " hours||":"||mins||" h"
  73.             end
  74.         end
  75.     end
  76.  
  77. /* Now we will optionally add an event */
  78.  
  79.     say ""
  80.     say ""
  81.     say "Do you want to add a new event? (y/N)"
  82.     pull answer
  83.     if upper(answer)="Y" then do
  84. /* Check out if the event is already there */
  85.         'EXISTS "ARexx-Add"'
  86.         if result~==0 then do
  87.                if result==1 then say "There already exists an event"
  88.            else say "There already exist "||result" events"
  89.            say "called 'ARexx-Add' added by ARexx."
  90.                say "Do you want to add another one? (Y/n)"
  91.                pull answer
  92.             end
  93.             else do
  94.           answer="y"
  95.         end
  96.  
  97.         if upper(answer)="Y" then do
  98. /* Add the event */
  99.                'EVENT "ARexx-Add"
  100.                ONTIME
  101.                ONCE BEEP BLINK WINFRONT SCREENFRONT KILLDONE
  102.                WHEN "#3 #26 #6 #92 #12 #18 0"
  103.                DISPLAY "5,0,This event was added by ARexx and removes itself right now!"
  104.                '
  105. /* Display Footer */
  106.                if rc==0 then do
  107.             say ""
  108.                  say "I added an event called 'ARexx-Add'"
  109.                 say "It will occur at the next full minute!"
  110.            end
  111.                else do
  112.             say ""
  113.             say "There was an error adding 'ARexx-Add'"
  114.            end
  115.              end
  116.     end
  117.  
  118. /* Display Requester */
  119.  
  120. 'REQUEST "End of;EVENT!''s;Demonstration"'
  121.  
  122.  
  123.     exit 0
  124.  
  125.  
  126.  
  127. /****** Subroutines ******/
  128.  
  129.  
  130. /********************* ExtractFromOccurString ***************************/
  131. /* In: OCString as received from Event!'s command WHENWILL(NR)        */
  132. /* Out: OccurMins=-1 if the event won't occur within the next 366 days    */
  133. /*      OccurMins=0 if the event doesn't exist or isn't "On Time"    */ 
  134. /*      Otherwise: hours=hours to go (formatted)            */
  135. /*           mins=additional minutes to go (formatted)        */
  136. /*                 days=days to go (formatted)                */
  137.         
  138. ExtractFromOccurString:
  139.     parse var OCString OccurMins EventName
  140.     if OccurMins~==-1 then do
  141.     hours=occurmins%60
  142.     mins=RIGHT(occurmins//60,2,"0")
  143.     days=RIGHT(hours%24,3," ")
  144.     hours=RIGHT(hours//24,2," ")
  145.     end
  146. return
  147.